
phase5：     文件格式 elf64-x86-64


Disassembly of section .init:

0000000000400650 <_init>:
  400650:	48 83 ec 08          	sub    $0x8,%rsp
  400654:	48 8b 05 9d 19 20 00 	mov    0x20199d(%rip),%rax        # 601ff8 <__gmon_start__>
  40065b:	48 85 c0             	test   %rax,%rax
  40065e:	74 05                	je     400665 <_init+0x15>
  400660:	e8 ab 00 00 00       	call   400710 <__gmon_start__@plt>
  400665:	48 83 c4 08          	add    $0x8,%rsp
  400669:	c3                   	ret

Disassembly of section .plt:

0000000000400670 <.plt>:
  400670:	ff 35 92 19 20 00    	push   0x201992(%rip)        # 602008 <_GLOBAL_OFFSET_TABLE_+0x8>
  400676:	ff 25 94 19 20 00    	jmp    *0x201994(%rip)        # 602010 <_GLOBAL_OFFSET_TABLE_+0x10>
  40067c:	0f 1f 40 00          	nopl   0x0(%rax)

0000000000400680 <puts@plt>:
  400680:	ff 25 92 19 20 00    	jmp    *0x201992(%rip)        # 602018 <puts@GLIBC_2.2.5>
  400686:	68 00 00 00 00       	push   $0x0
  40068b:	e9 e0 ff ff ff       	jmp    400670 <.plt>

0000000000400690 <ferror@plt>:
  400690:	ff 25 8a 19 20 00    	jmp    *0x20198a(%rip)        # 602020 <ferror@GLIBC_2.2.5>
  400696:	68 01 00 00 00       	push   $0x1
  40069b:	e9 d0 ff ff ff       	jmp    400670 <.plt>

00000000004006a0 <fread@plt>:
  4006a0:	ff 25 82 19 20 00    	jmp    *0x201982(%rip)        # 602028 <fread@GLIBC_2.2.5>
  4006a6:	68 02 00 00 00       	push   $0x2
  4006ab:	e9 c0 ff ff ff       	jmp    400670 <.plt>

00000000004006b0 <getpid@plt>:
  4006b0:	ff 25 7a 19 20 00    	jmp    *0x20197a(%rip)        # 602030 <getpid@GLIBC_2.2.5>
  4006b6:	68 03 00 00 00       	push   $0x3
  4006bb:	e9 b0 ff ff ff       	jmp    400670 <.plt>

00000000004006c0 <fclose@plt>:
  4006c0:	ff 25 72 19 20 00    	jmp    *0x201972(%rip)        # 602038 <fclose@GLIBC_2.2.5>
  4006c6:	68 04 00 00 00       	push   $0x4
  4006cb:	e9 a0 ff ff ff       	jmp    400670 <.plt>

00000000004006d0 <printf@plt>:
  4006d0:	ff 25 6a 19 20 00    	jmp    *0x20196a(%rip)        # 602040 <printf@GLIBC_2.2.5>
  4006d6:	68 05 00 00 00       	push   $0x5
  4006db:	e9 90 ff ff ff       	jmp    400670 <.plt>

00000000004006e0 <memset@plt>:
  4006e0:	ff 25 62 19 20 00    	jmp    *0x201962(%rip)        # 602048 <memset@GLIBC_2.2.5>
  4006e6:	68 06 00 00 00       	push   $0x6
  4006eb:	e9 80 ff ff ff       	jmp    400670 <.plt>

00000000004006f0 <__libc_start_main@plt>:
  4006f0:	ff 25 5a 19 20 00    	jmp    *0x20195a(%rip)        # 602050 <__libc_start_main@GLIBC_2.2.5>
  4006f6:	68 07 00 00 00       	push   $0x7
  4006fb:	e9 70 ff ff ff       	jmp    400670 <.plt>

0000000000400700 <srand@plt>:
  400700:	ff 25 52 19 20 00    	jmp    *0x201952(%rip)        # 602058 <srand@GLIBC_2.2.5>
  400706:	68 08 00 00 00       	push   $0x8
  40070b:	e9 60 ff ff ff       	jmp    400670 <.plt>

0000000000400710 <__gmon_start__@plt>:
  400710:	ff 25 4a 19 20 00    	jmp    *0x20194a(%rip)        # 602060 <__gmon_start__>
  400716:	68 09 00 00 00       	push   $0x9
  40071b:	e9 50 ff ff ff       	jmp    400670 <.plt>

0000000000400720 <fopen@plt>:
  400720:	ff 25 42 19 20 00    	jmp    *0x201942(%rip)        # 602068 <fopen@GLIBC_2.2.5>
  400726:	68 0a 00 00 00       	push   $0xa
  40072b:	e9 40 ff ff ff       	jmp    400670 <.plt>

0000000000400730 <exit@plt>:
  400730:	ff 25 3a 19 20 00    	jmp    *0x20193a(%rip)        # 602070 <exit@GLIBC_2.2.5>
  400736:	68 0b 00 00 00       	push   $0xb
  40073b:	e9 30 ff ff ff       	jmp    400670 <.plt>

0000000000400740 <rand@plt>:
  400740:	ff 25 32 19 20 00    	jmp    *0x201932(%rip)        # 602078 <rand@GLIBC_2.2.5>
  400746:	68 0c 00 00 00       	push   $0xc
  40074b:	e9 20 ff ff ff       	jmp    400670 <.plt>

Disassembly of section .text:

0000000000400750 <_start>:
  400750:	31 ed                	xor    %ebp,%ebp
  400752:	49 89 d1             	mov    %rdx,%r9
  400755:	5e                   	pop    %rsi
  400756:	48 89 e2             	mov    %rsp,%rdx
  400759:	48 83 e4 f0          	and    $0xfffffffffffffff0,%rsp
  40075d:	50                   	push   %rax
  40075e:	54                   	push   %rsp
  40075f:	49 c7 c0 70 0d 40 00 	mov    $0x400d70,%r8
  400766:	48 c7 c1 00 0d 40 00 	mov    $0x400d00,%rcx
  40076d:	48 c7 c7 bf 0b 40 00 	mov    $0x400bbf,%rdi
  400774:	e8 77 ff ff ff       	call   4006f0 <__libc_start_main@plt>
  400779:	f4                   	hlt
  40077a:	66 0f 1f 44 00 00    	nopw   0x0(%rax,%rax,1)

0000000000400780 <deregister_tm_clones>:
  400780:	b8 07 21 60 00       	mov    $0x602107,%eax
  400785:	55                   	push   %rbp
  400786:	48 2d 00 21 60 00    	sub    $0x602100,%rax
  40078c:	48 83 f8 0e          	cmp    $0xe,%rax
  400790:	48 89 e5             	mov    %rsp,%rbp
  400793:	77 02                	ja     400797 <deregister_tm_clones+0x17>
  400795:	5d                   	pop    %rbp
  400796:	c3                   	ret
  400797:	b8 00 00 00 00       	mov    $0x0,%eax
  40079c:	48 85 c0             	test   %rax,%rax
  40079f:	74 f4                	je     400795 <deregister_tm_clones+0x15>
  4007a1:	5d                   	pop    %rbp
  4007a2:	bf 00 21 60 00       	mov    $0x602100,%edi
  4007a7:	ff e0                	jmp    *%rax
  4007a9:	0f 1f 80 00 00 00 00 	nopl   0x0(%rax)

00000000004007b0 <register_tm_clones>:
  4007b0:	b8 00 21 60 00       	mov    $0x602100,%eax
  4007b5:	55                   	push   %rbp
  4007b6:	48 2d 00 21 60 00    	sub    $0x602100,%rax
  4007bc:	48 c1 f8 03          	sar    $0x3,%rax
  4007c0:	48 89 e5             	mov    %rsp,%rbp
  4007c3:	48 89 c2             	mov    %rax,%rdx
  4007c6:	48 c1 ea 3f          	shr    $0x3f,%rdx
  4007ca:	48 01 d0             	add    %rdx,%rax
  4007cd:	48 d1 f8             	sar    $1,%rax
  4007d0:	75 02                	jne    4007d4 <register_tm_clones+0x24>
  4007d2:	5d                   	pop    %rbp
  4007d3:	c3                   	ret
  4007d4:	ba 00 00 00 00       	mov    $0x0,%edx
  4007d9:	48 85 d2             	test   %rdx,%rdx
  4007dc:	74 f4                	je     4007d2 <register_tm_clones+0x22>
  4007de:	5d                   	pop    %rbp
  4007df:	48 89 c6             	mov    %rax,%rsi
  4007e2:	bf 00 21 60 00       	mov    $0x602100,%edi
  4007e7:	ff e2                	jmp    *%rdx
  4007e9:	0f 1f 80 00 00 00 00 	nopl   0x0(%rax)

00000000004007f0 <__do_global_dtors_aux>:
  4007f0:	80 3d 11 19 20 00 00 	cmpb   $0x0,0x201911(%rip)        # 602108 <completed.6355>
  4007f7:	75 11                	jne    40080a <__do_global_dtors_aux+0x1a>
  4007f9:	55                   	push   %rbp
  4007fa:	48 89 e5             	mov    %rsp,%rbp
  4007fd:	e8 7e ff ff ff       	call   400780 <deregister_tm_clones>
  400802:	5d                   	pop    %rbp
  400803:	c6 05 fe 18 20 00 01 	movb   $0x1,0x2018fe(%rip)        # 602108 <completed.6355>
  40080a:	f3 c3                	repz ret
  40080c:	0f 1f 40 00          	nopl   0x0(%rax)

0000000000400810 <frame_dummy>:
  400810:	48 83 3d 08 16 20 00 	cmpq   $0x0,0x201608(%rip)        # 601e20 <__JCR_END__>
  400817:	00 
  400818:	74 1e                	je     400838 <frame_dummy+0x28>
  40081a:	b8 00 00 00 00       	mov    $0x0,%eax
  40081f:	48 85 c0             	test   %rax,%rax
  400822:	74 14                	je     400838 <frame_dummy+0x28>
  400824:	55                   	push   %rbp
  400825:	bf 20 1e 60 00       	mov    $0x601e20,%edi
  40082a:	48 89 e5             	mov    %rsp,%rbp
  40082d:	ff d0                	call   *%rax
  40082f:	5d                   	pop    %rbp
  400830:	e9 7b ff ff ff       	jmp    4007b0 <register_tm_clones>
  400835:	0f 1f 00             	nopl   (%rax)
  400838:	e9 73 ff ff ff       	jmp    4007b0 <register_tm_clones>

000000000040083d <_r_func_>:
  40083d:	55                   	push   %rbp
  40083e:	48 89 e5             	mov    %rsp,%rbp
  400841:	90                   	nop
  400842:	90                   	nop
  400843:	90                   	nop
  400844:	90                   	nop
  400845:	90                   	nop
  400846:	90                   	nop
  400847:	90                   	nop
  400848:	90                   	nop
  400849:	90                   	nop
  40084a:	90                   	nop
  40084b:	90                   	nop
  40084c:	90                   	nop
  40084d:	90                   	nop
  40084e:	90                   	nop
  40084f:	90                   	nop
  400850:	90                   	nop
  400851:	90                   	nop
  400852:	90                   	nop
  400853:	90                   	nop
  400854:	90                   	nop
  400855:	90                   	nop
  400856:	90                   	nop
  400857:	90                   	nop
  400858:	90                   	nop
  400859:	90                   	nop
  40085a:	90                   	nop
  40085b:	90                   	nop
  40085c:	90                   	nop
  40085d:	90                   	nop
  40085e:	90                   	nop
  40085f:	5d                   	pop    %rbp
  400860:	c3                   	ret

0000000000400861 <_opfunc1_>:
  400861:	55                   	push   %rbp
  400862:	48 89 e5             	mov    %rsp,%rbp
  400865:	48 89 7d f8          	mov    %rdi,-0x8(%rbp)
  400869:	89 f0                	mov    %esi,%eax
  40086b:	88 45 f4             	mov    %al,-0xc(%rbp)
  40086e:	48 8b 45 f8          	mov    -0x8(%rbp),%rax
  400872:	0f b6 55 f4          	movzbl -0xc(%rbp),%edx
  400876:	88 10                	mov    %dl,(%rax)
  400878:	5d                   	pop    %rbp
  400879:	c3                   	ret

000000000040087a <_opfunc2_>:
  40087a:	55                   	push   %rbp
  40087b:	48 89 e5             	mov    %rsp,%rbp
  40087e:	48 89 7d f8          	mov    %rdi,-0x8(%rbp)
  400882:	89 f1                	mov    %esi,%ecx
  400884:	89 d0                	mov    %edx,%eax
  400886:	88 4d f4             	mov    %cl,-0xc(%rbp)
  400889:	88 45 f0             	mov    %al,-0x10(%rbp)
  40088c:	48 8b 45 f8          	mov    -0x8(%rbp),%rax
  400890:	0f b6 55 f4          	movzbl -0xc(%rbp),%edx
  400894:	88 10                	mov    %dl,(%rax)
  400896:	48 8b 45 f8          	mov    -0x8(%rbp),%rax
  40089a:	48 8d 50 01          	lea    0x1(%rax),%rdx
  40089e:	0f b6 45 f0          	movzbl -0x10(%rbp),%eax
  4008a2:	88 02                	mov    %al,(%rdx)
  4008a4:	5d                   	pop    %rbp
  4008a5:	c3                   	ret

00000000004008a6 <_opfunc3_>:
  4008a6:	55                   	push   %rbp
  4008a7:	48 89 e5             	mov    %rsp,%rbp
  4008aa:	48 89 7d f8          	mov    %rdi,-0x8(%rbp)
  4008ae:	89 c8                	mov    %ecx,%eax
  4008b0:	44 89 c1             	mov    %r8d,%ecx
  4008b3:	40 88 75 f4          	mov    %sil,-0xc(%rbp)
  4008b7:	88 55 f0             	mov    %dl,-0x10(%rbp)
  4008ba:	88 45 ec             	mov    %al,-0x14(%rbp)
  4008bd:	88 4d e8             	mov    %cl,-0x18(%rbp)
  4008c0:	48 8b 45 f8          	mov    -0x8(%rbp),%rax
  4008c4:	0f b6 55 f4          	movzbl -0xc(%rbp),%edx
  4008c8:	88 10                	mov    %dl,(%rax)
  4008ca:	48 8b 45 f8          	mov    -0x8(%rbp),%rax
  4008ce:	48 8d 50 01          	lea    0x1(%rax),%rdx
  4008d2:	0f b6 45 f0          	movzbl -0x10(%rbp),%eax
  4008d6:	88 02                	mov    %al,(%rdx)
  4008d8:	48 8b 45 f8          	mov    -0x8(%rbp),%rax
  4008dc:	48 8d 50 02          	lea    0x2(%rax),%rdx
  4008e0:	0f b6 45 ec          	movzbl -0x14(%rbp),%eax
  4008e4:	88 02                	mov    %al,(%rdx)
  4008e6:	48 8b 45 f8          	mov    -0x8(%rbp),%rax
  4008ea:	48 8d 50 03          	lea    0x3(%rax),%rdx
  4008ee:	0f b6 45 e8          	movzbl -0x18(%rbp),%eax
  4008f2:	88 02                	mov    %al,(%rdx)
  4008f4:	5d                   	pop    %rbp
  4008f5:	c3                   	ret

00000000004008f6 <do_phase>:
  4008f6:	55                   	push   %rbp
  4008f7:	48 89 e5             	mov    %rsp,%rbp
  4008fa:	48 83 ec 30          	sub    $0x30,%rsp
  4008fe:	48 89 7d d8          	mov    %rdi,-0x28(%rbp)
  400902:	48 8d 55 e0          	lea    -0x20(%rbp),%rdx
  400906:	48 8b 45 d8          	mov    -0x28(%rbp),%rax
  40090a:	48 89 d6             	mov    %rdx,%rsi
  40090d:	48 89 c7             	mov    %rax,%rdi
  400910:	e8 87 00 00 00       	call   40099c <digit2hex>
  400915:	c9                   	leave
  400916:	c3                   	ret

0000000000400917 <phase>:
  400917:	55                   	push   %rbp
  400918:	48 89 e5             	mov    %rsp,%rbp
  40091b:	41 54                	push   %r12
  40091d:	53                   	push   %rbx
  40091e:	48 83 ec 10          	sub    $0x10,%rsp
  400922:	48 89 7d e8          	mov    %rdi,-0x18(%rbp)
  400926:	49 bc 90 41 58 59 5a 	movabs $0xc35f5e5a59584190,%r12
  40092d:	5e 5f c3 
  400930:	48 bb 58 58 c3 48 83 	movabs $0xc310c48348c35858,%rbx
  400937:	c4 10 c3 
  40093a:	e8 01 fe ff ff       	call   400740 <rand@plt>
  40093f:	48 98                	cltq
  400941:	25 ff 03 00 00       	and    $0x3ff,%eax
  400946:	48 05 00 02 00 00    	add    $0x200,%rax
  40094c:	48 8d 50 0f          	lea    0xf(%rax),%rdx
  400950:	b8 10 00 00 00       	mov    $0x10,%eax
  400955:	48 83 e8 01          	sub    $0x1,%rax
  400959:	48 01 d0             	add    %rdx,%rax
  40095c:	b9 10 00 00 00       	mov    $0x10,%ecx
  400961:	ba 00 00 00 00       	mov    $0x0,%edx
  400966:	48 f7 f1             	div    %rcx
  400969:	48 6b c0 10          	imul   $0x10,%rax,%rax
  40096d:	48 29 c4             	sub    %rax,%rsp
  400970:	48 8b 45 e8          	mov    -0x18(%rbp),%rax
  400974:	48 89 c7             	mov    %rax,%rdi
  400977:	e8 7a ff ff ff       	call   4008f6 <do_phase>
  40097c:	bf a8 20 60 00       	mov    $0x6020a8,%edi
  400981:	e8 fa fc ff ff       	call   400680 <puts@plt>
  400986:	4c 89 e0             	mov    %r12,%rax
  400989:	48 21 d8             	and    %rbx,%rax
  40098c:	48 85 c0             	test   %rax,%rax
  40098f:	0f 94 c0             	sete   %al
  400992:	0f b6 c0             	movzbl %al,%eax
  400995:	89 c7                	mov    %eax,%edi
  400997:	e8 94 fd ff ff       	call   400730 <exit@plt>

000000000040099c <digit2hex>:
  40099c:	55                   	push   %rbp
  40099d:	48 89 e5             	mov    %rsp,%rbp
  4009a0:	48 89 7d e8          	mov    %rdi,-0x18(%rbp)
  4009a4:	48 89 75 e0          	mov    %rsi,-0x20(%rbp)
  4009a8:	48 c7 45 f8 00 00 00 	movq   $0x0,-0x8(%rbp)
  4009af:	00 
  4009b0:	c7 45 f4 00 00 00 00 	movl   $0x0,-0xc(%rbp)
  4009b7:	e9 a5 00 00 00       	jmp    400a61 <digit2hex+0xc5>
  4009bc:	48 8b 45 e8          	mov    -0x18(%rbp),%rax
  4009c0:	0f b6 00             	movzbl (%rax),%eax
  4009c3:	3c 23                	cmp    $0x23,%al
  4009c5:	75 12                	jne    4009d9 <digit2hex+0x3d>
  4009c7:	83 7d f4 00          	cmpl   $0x0,-0xc(%rbp)
  4009cb:	0f 94 c0             	sete   %al
  4009ce:	0f b6 c0             	movzbl %al,%eax
  4009d1:	89 45 f4             	mov    %eax,-0xc(%rbp)
  4009d4:	e9 83 00 00 00       	jmp    400a5c <digit2hex+0xc0>
  4009d9:	83 7d f4 00          	cmpl   $0x0,-0xc(%rbp)
  4009dd:	74 02                	je     4009e1 <digit2hex+0x45>
  4009df:	eb 7b                	jmp    400a5c <digit2hex+0xc0>
  4009e1:	48 8b 45 e8          	mov    -0x18(%rbp),%rax
  4009e5:	0f b6 00             	movzbl (%rax),%eax
  4009e8:	0f be c0             	movsbl %al,%eax
  4009eb:	83 e0 7f             	and    $0x7f,%eax
  4009ee:	48 98                	cltq
  4009f0:	0f b6 80 a0 0d 40 00 	movzbl 0x400da0(%rax),%eax
  4009f7:	3c ff                	cmp    $0xff,%al
  4009f9:	75 02                	jne    4009fd <digit2hex+0x61>
  4009fb:	eb 5f                	jmp    400a5c <digit2hex+0xc0>
  4009fd:	48 83 7d f8 00       	cmpq   $0x0,-0x8(%rbp)
  400a02:	74 50                	je     400a54 <digit2hex+0xb8>
  400a04:	48 8b 45 f8          	mov    -0x8(%rbp),%rax
  400a08:	0f b6 00             	movzbl (%rax),%eax
  400a0b:	0f be c0             	movsbl %al,%eax
  400a0e:	83 e0 7f             	and    $0x7f,%eax
  400a11:	48 98                	cltq
  400a13:	0f b6 80 a0 0d 40 00 	movzbl 0x400da0(%rax),%eax
  400a1a:	0f b6 c0             	movzbl %al,%eax
  400a1d:	c1 e0 04             	shl    $0x4,%eax
  400a20:	89 c2                	mov    %eax,%edx
  400a22:	48 8b 45 e8          	mov    -0x18(%rbp),%rax
  400a26:	0f b6 00             	movzbl (%rax),%eax
  400a29:	0f be c0             	movsbl %al,%eax
  400a2c:	83 e0 7f             	and    $0x7f,%eax
  400a2f:	48 98                	cltq
  400a31:	0f b6 80 a0 0d 40 00 	movzbl 0x400da0(%rax),%eax
  400a38:	83 e0 0f             	and    $0xf,%eax
  400a3b:	09 d0                	or     %edx,%eax
  400a3d:	89 c2                	mov    %eax,%edx
  400a3f:	48 8b 45 e0          	mov    -0x20(%rbp),%rax
  400a43:	88 10                	mov    %dl,(%rax)
  400a45:	48 83 45 e0 01       	addq   $0x1,-0x20(%rbp)
  400a4a:	48 c7 45 f8 00 00 00 	movq   $0x0,-0x8(%rbp)
  400a51:	00 
  400a52:	eb 08                	jmp    400a5c <digit2hex+0xc0>
  400a54:	48 8b 45 e8          	mov    -0x18(%rbp),%rax
  400a58:	48 89 45 f8          	mov    %rax,-0x8(%rbp)
  400a5c:	48 83 45 e8 01       	addq   $0x1,-0x18(%rbp)
  400a61:	48 8b 45 e8          	mov    -0x18(%rbp),%rax
  400a65:	0f b6 00             	movzbl (%rax),%eax
  400a68:	84 c0                	test   %al,%al
  400a6a:	0f 85 4c ff ff ff    	jne    4009bc <digit2hex+0x20>
  400a70:	48 8b 45 e0          	mov    -0x20(%rbp),%rax
  400a74:	5d                   	pop    %rbp
  400a75:	c3                   	ret

0000000000400a76 <getrid>:
  400a76:	55                   	push   %rbp
  400a77:	48 89 e5             	mov    %rsp,%rbp
  400a7a:	8b 05 7c 16 20 00    	mov    0x20167c(%rip),%eax        # 6020fc <run_id.3622>
  400a80:	85 c0                	test   %eax,%eax
  400a82:	79 17                	jns    400a9b <getrid+0x25>
  400a84:	e8 27 fc ff ff       	call   4006b0 <getpid@plt>
  400a89:	89 c7                	mov    %eax,%edi
  400a8b:	e8 70 fc ff ff       	call   400700 <srand@plt>
  400a90:	e8 ab fc ff ff       	call   400740 <rand@plt>
  400a95:	89 05 61 16 20 00    	mov    %eax,0x201661(%rip)        # 6020fc <run_id.3622>
  400a9b:	8b 05 5b 16 20 00    	mov    0x20165b(%rip),%eax        # 6020fc <run_id.3622>
  400aa1:	5d                   	pop    %rbp
  400aa2:	c3                   	ret

0000000000400aa3 <fillregion>:
  400aa3:	55                   	push   %rbp
  400aa4:	48 89 e5             	mov    %rsp,%rbp
  400aa7:	48 89 7d e8          	mov    %rdi,-0x18(%rbp)
  400aab:	89 75 e4             	mov    %esi,-0x1c(%rbp)
  400aae:	89 55 e0             	mov    %edx,-0x20(%rbp)
  400ab1:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%rbp)
  400ab8:	eb 1d                	jmp    400ad7 <fillregion+0x34>
  400aba:	8b 45 fc             	mov    -0x4(%rbp),%eax
  400abd:	48 98                	cltq
  400abf:	48 8d 14 85 00 00 00 	lea    0x0(,%rax,4),%rdx
  400ac6:	00 
  400ac7:	48 8b 45 e8          	mov    -0x18(%rbp),%rax
  400acb:	48 01 c2             	add    %rax,%rdx
  400ace:	8b 45 e0             	mov    -0x20(%rbp),%eax
  400ad1:	89 02                	mov    %eax,(%rdx)
  400ad3:	83 45 fc 01          	addl   $0x1,-0x4(%rbp)
  400ad7:	8b 45 fc             	mov    -0x4(%rbp),%eax
  400ada:	3b 45 e4             	cmp    -0x1c(%rbp),%eax
  400add:	7c db                	jl     400aba <fillregion+0x17>
  400adf:	5d                   	pop    %rbp
  400ae0:	c3                   	ret

0000000000400ae1 <checkregion>:
  400ae1:	55                   	push   %rbp
  400ae2:	48 89 e5             	mov    %rsp,%rbp
  400ae5:	48 89 7d e8          	mov    %rdi,-0x18(%rbp)
  400ae9:	89 75 e4             	mov    %esi,-0x1c(%rbp)
  400aec:	89 55 e0             	mov    %edx,-0x20(%rbp)
  400aef:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%rbp)
  400af6:	eb 26                	jmp    400b1e <checkregion+0x3d>
  400af8:	8b 45 fc             	mov    -0x4(%rbp),%eax
  400afb:	48 98                	cltq
  400afd:	48 8d 14 85 00 00 00 	lea    0x0(,%rax,4),%rdx
  400b04:	00 
  400b05:	48 8b 45 e8          	mov    -0x18(%rbp),%rax
  400b09:	48 01 d0             	add    %rdx,%rax
  400b0c:	8b 00                	mov    (%rax),%eax
  400b0e:	3b 45 e0             	cmp    -0x20(%rbp),%eax
  400b11:	74 07                	je     400b1a <checkregion+0x39>
  400b13:	b8 00 00 00 00       	mov    $0x0,%eax
  400b18:	eb 11                	jmp    400b2b <checkregion+0x4a>
  400b1a:	83 45 fc 01          	addl   $0x1,-0x4(%rbp)
  400b1e:	8b 45 fc             	mov    -0x4(%rbp),%eax
  400b21:	3b 45 e4             	cmp    -0x1c(%rbp),%eax
  400b24:	7c d2                	jl     400af8 <checkregion+0x17>
  400b26:	b8 01 00 00 00       	mov    $0x1,%eax
  400b2b:	5d                   	pop    %rbp
  400b2c:	c3                   	ret

0000000000400b2d <exec_phase>:
  400b2d:	55                   	push   %rbp
  400b2e:	48 89 e5             	mov    %rsp,%rbp
  400b31:	48 83 ec 50          	sub    $0x50,%rsp
  400b35:	48 89 7d b8          	mov    %rdi,-0x48(%rbp)
  400b39:	48 c7 05 fc 35 20 00 	movq   $0x40,0x2035fc(%rip)        # 604140 <alloca_size.3649>
  400b40:	40 00 00 00 
  400b44:	48 8d 45 c0          	lea    -0x40(%rbp),%rax
  400b48:	48 89 05 f9 35 20 00 	mov    %rax,0x2035f9(%rip)        # 604148 <alloca_region.3648>
  400b4f:	b8 00 00 00 00       	mov    $0x0,%eax
  400b54:	e8 1d ff ff ff       	call   400a76 <getrid>
  400b59:	89 c2                	mov    %eax,%edx
  400b5b:	48 8b 05 de 35 20 00 	mov    0x2035de(%rip),%rax        # 604140 <alloca_size.3649>
  400b62:	48 c1 e8 02          	shr    $0x2,%rax
  400b66:	89 c1                	mov    %eax,%ecx
  400b68:	48 8b 05 d9 35 20 00 	mov    0x2035d9(%rip),%rax        # 604148 <alloca_region.3648>
  400b6f:	89 ce                	mov    %ecx,%esi
  400b71:	48 89 c7             	mov    %rax,%rdi
  400b74:	e8 2a ff ff ff       	call   400aa3 <fillregion>
  400b79:	48 8b 45 b8          	mov    -0x48(%rbp),%rax
  400b7d:	48 89 c7             	mov    %rax,%rdi
  400b80:	e8 92 fd ff ff       	call   400917 <phase>
  400b85:	b8 00 00 00 00       	mov    $0x0,%eax
  400b8a:	e8 e7 fe ff ff       	call   400a76 <getrid>
  400b8f:	89 c2                	mov    %eax,%edx
  400b91:	48 8b 05 a8 35 20 00 	mov    0x2035a8(%rip),%rax        # 604140 <alloca_size.3649>
  400b98:	48 c1 e8 02          	shr    $0x2,%rax
  400b9c:	89 c1                	mov    %eax,%ecx
  400b9e:	48 8b 05 a3 35 20 00 	mov    0x2035a3(%rip),%rax        # 604148 <alloca_region.3648>
  400ba5:	89 ce                	mov    %ecx,%esi
  400ba7:	48 89 c7             	mov    %rax,%rdi
  400baa:	e8 32 ff ff ff       	call   400ae1 <checkregion>
  400baf:	85 c0                	test   %eax,%eax
  400bb1:	75 0a                	jne    400bbd <exec_phase+0x90>
  400bb3:	bf 20 0e 40 00       	mov    $0x400e20,%edi
  400bb8:	e8 c3 fa ff ff       	call   400680 <puts@plt>
  400bbd:	c9                   	leave
  400bbe:	c3                   	ret

0000000000400bbf <main>:
  400bbf:	55                   	push   %rbp
  400bc0:	48 89 e5             	mov    %rsp,%rbp
  400bc3:	48 83 ec 20          	sub    $0x20,%rsp
  400bc7:	89 7d ec             	mov    %edi,-0x14(%rbp)
  400bca:	48 89 75 e0          	mov    %rsi,-0x20(%rbp)
  400bce:	b8 00 00 00 00       	mov    $0x0,%eax
  400bd3:	e8 9e fe ff ff       	call   400a76 <getrid>
  400bd8:	48 c7 45 f8 00 00 00 	movq   $0x0,-0x8(%rbp)
  400bdf:	00 
  400be0:	83 7d ec 01          	cmpl   $0x1,-0x14(%rbp)
  400be4:	75 0d                	jne    400bf3 <main+0x34>
  400be6:	48 8b 05 13 15 20 00 	mov    0x201513(%rip),%rax        # 602100 <stdin@GLIBC_2.2.5>
  400bed:	48 89 45 f8          	mov    %rax,-0x8(%rbp)
  400bf1:	eb 73                	jmp    400c66 <main+0xa7>
  400bf3:	83 7d ec 02          	cmpl   $0x2,-0x14(%rbp)
  400bf7:	75 4a                	jne    400c43 <main+0x84>
  400bf9:	48 8b 45 e0          	mov    -0x20(%rbp),%rax
  400bfd:	48 83 c0 08          	add    $0x8,%rax
  400c01:	48 8b 00             	mov    (%rax),%rax
  400c04:	be 42 0e 40 00       	mov    $0x400e42,%esi
  400c09:	48 89 c7             	mov    %rax,%rdi
  400c0c:	e8 0f fb ff ff       	call   400720 <fopen@plt>
  400c11:	48 89 45 f8          	mov    %rax,-0x8(%rbp)
  400c15:	48 83 7d f8 00       	cmpq   $0x0,-0x8(%rbp)
  400c1a:	75 4a                	jne    400c66 <main+0xa7>
  400c1c:	48 8b 45 e0          	mov    -0x20(%rbp),%rax
  400c20:	48 83 c0 08          	add    $0x8,%rax
  400c24:	48 8b 00             	mov    (%rax),%rax
  400c27:	48 89 c6             	mov    %rax,%rsi
  400c2a:	bf 48 0e 40 00       	mov    $0x400e48,%edi
  400c2f:	b8 00 00 00 00       	mov    $0x0,%eax
  400c34:	e8 97 fa ff ff       	call   4006d0 <printf@plt>
  400c39:	b8 ff ff ff ff       	mov    $0xffffffff,%eax
  400c3e:	e9 bb 00 00 00       	jmp    400cfe <main+0x13f>
  400c43:	48 8b 45 e0          	mov    -0x20(%rbp),%rax
  400c47:	48 8b 00             	mov    (%rax),%rax
  400c4a:	48 89 c6             	mov    %rax,%rsi
  400c4d:	bf 6c 0e 40 00       	mov    $0x400e6c,%edi
  400c52:	b8 00 00 00 00       	mov    $0x0,%eax
  400c57:	e8 74 fa ff ff       	call   4006d0 <printf@plt>
  400c5c:	b8 ff ff ff ff       	mov    $0xffffffff,%eax
  400c61:	e9 98 00 00 00       	jmp    400cfe <main+0x13f>
  400c66:	bf 88 0e 40 00       	mov    $0x400e88,%edi
  400c6b:	e8 10 fa ff ff       	call   400680 <puts@plt>
  400c70:	bf b8 0e 40 00       	mov    $0x400eb8,%edi
  400c75:	e8 06 fa ff ff       	call   400680 <puts@plt>
  400c7a:	ba 00 20 00 00       	mov    $0x2000,%edx
  400c7f:	be 00 00 00 00       	mov    $0x0,%esi
  400c84:	bf 40 21 60 00       	mov    $0x602140,%edi
  400c89:	e8 52 fa ff ff       	call   4006e0 <memset@plt>
  400c8e:	48 8b 45 f8          	mov    -0x8(%rbp),%rax
  400c92:	48 89 c1             	mov    %rax,%rcx
  400c95:	ba ff 1f 00 00       	mov    $0x1fff,%edx
  400c9a:	be 01 00 00 00       	mov    $0x1,%esi
  400c9f:	bf 40 21 60 00       	mov    $0x602140,%edi
  400ca4:	e8 f7 f9 ff ff       	call   4006a0 <fread@plt>
  400ca9:	48 89 45 f0          	mov    %rax,-0x10(%rbp)
  400cad:	48 8b 45 f8          	mov    -0x8(%rbp),%rax
  400cb1:	48 89 c7             	mov    %rax,%rdi
  400cb4:	e8 d7 f9 ff ff       	call   400690 <ferror@plt>
  400cb9:	85 c0                	test   %eax,%eax
  400cbb:	74 0c                	je     400cc9 <main+0x10a>
  400cbd:	bf e0 0e 40 00       	mov    $0x400ee0,%edi
  400cc2:	e8 b9 f9 ff ff       	call   400680 <puts@plt>
  400cc7:	eb 17                	jmp    400ce0 <main+0x121>
  400cc9:	48 8b 45 f0          	mov    -0x10(%rbp),%rax
  400ccd:	48 05 40 21 60 00    	add    $0x602140,%rax
  400cd3:	c6 00 00             	movb   $0x0,(%rax)
  400cd6:	bf 40 21 60 00       	mov    $0x602140,%edi
  400cdb:	e8 4d fe ff ff       	call   400b2d <exec_phase>
  400ce0:	48 8b 05 19 14 20 00 	mov    0x201419(%rip),%rax        # 602100 <stdin@GLIBC_2.2.5>
  400ce7:	48 39 45 f8          	cmp    %rax,-0x8(%rbp)
  400ceb:	74 0c                	je     400cf9 <main+0x13a>
  400ced:	48 8b 45 f8          	mov    -0x8(%rbp),%rax
  400cf1:	48 89 c7             	mov    %rax,%rdi
  400cf4:	e8 c7 f9 ff ff       	call   4006c0 <fclose@plt>
  400cf9:	b8 00 00 00 00       	mov    $0x0,%eax
  400cfe:	c9                   	leave
  400cff:	c3                   	ret

0000000000400d00 <__libc_csu_init>:
  400d00:	41 57                	push   %r15
  400d02:	41 89 ff             	mov    %edi,%r15d
  400d05:	41 56                	push   %r14
  400d07:	49 89 f6             	mov    %rsi,%r14
  400d0a:	41 55                	push   %r13
  400d0c:	49 89 d5             	mov    %rdx,%r13
  400d0f:	41 54                	push   %r12
  400d11:	4c 8d 25 f8 10 20 00 	lea    0x2010f8(%rip),%r12        # 601e10 <__frame_dummy_init_array_entry>
  400d18:	55                   	push   %rbp
  400d19:	48 8d 2d f8 10 20 00 	lea    0x2010f8(%rip),%rbp        # 601e18 <__do_global_dtors_aux_fini_array_entry>
  400d20:	53                   	push   %rbx
  400d21:	4c 29 e5             	sub    %r12,%rbp
  400d24:	31 db                	xor    %ebx,%ebx
  400d26:	48 c1 fd 03          	sar    $0x3,%rbp
  400d2a:	48 83 ec 08          	sub    $0x8,%rsp
  400d2e:	e8 1d f9 ff ff       	call   400650 <_init>
  400d33:	48 85 ed             	test   %rbp,%rbp
  400d36:	74 1e                	je     400d56 <__libc_csu_init+0x56>
  400d38:	0f 1f 84 00 00 00 00 	nopl   0x0(%rax,%rax,1)
  400d3f:	00 
  400d40:	4c 89 ea             	mov    %r13,%rdx
  400d43:	4c 89 f6             	mov    %r14,%rsi
  400d46:	44 89 ff             	mov    %r15d,%edi
  400d49:	41 ff 14 dc          	call   *(%r12,%rbx,8)
  400d4d:	48 83 c3 01          	add    $0x1,%rbx
  400d51:	48 39 eb             	cmp    %rbp,%rbx
  400d54:	75 ea                	jne    400d40 <__libc_csu_init+0x40>
  400d56:	48 83 c4 08          	add    $0x8,%rsp
  400d5a:	5b                   	pop    %rbx
  400d5b:	5d                   	pop    %rbp
  400d5c:	41 5c                	pop    %r12
  400d5e:	41 5d                	pop    %r13
  400d60:	41 5e                	pop    %r14
  400d62:	41 5f                	pop    %r15
  400d64:	c3                   	ret
  400d65:	90                   	nop
  400d66:	66 2e 0f 1f 84 00 00 	cs nopw 0x0(%rax,%rax,1)
  400d6d:	00 00 00 

0000000000400d70 <__libc_csu_fini>:
  400d70:	f3 c3                	repz ret

Disassembly of section .fini:

0000000000400d74 <_fini>:
  400d74:	48 83 ec 08          	sub    $0x8,%rsp
  400d78:	48 83 c4 08          	add    $0x8,%rsp
  400d7c:	c3                   	ret
